package inseniarlingua.lang.en;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

class VerbENFactoryTest
{
	VerbsENFactory cut;

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
		cut = new VerbsENFactory();
	}

	@After
	public void tearDown() throws Exception {
	}

	@Test
	public void testRegular() {
		VerbEngDef verb = cut.getVerb("visit");
		assertEquals('visit', verb.infinitive);
		assertEquals('visit', verb.present);
		assertEquals('visited', verb.past);
		assertEquals('visited', verb.perfect);
		assertEquals('visits', verb.present3rdPersonSingular);
		assertEquals('visiting', verb.presentParticiple);
	}

	@Test
	public void testEat() {
		VerbEngDef verb = cut.getVerb("eat");
		assertEquals('eat', verb.infinitive);
		assertEquals('eat', verb.present);
		assertEquals('eat', verb.present2rdPerson);
		assertEquals('ate', verb.past);
		assertEquals('ate', verb.past3rdPersonSingular);
		assertEquals('eaten', verb.perfect);
		assertEquals('eats', verb.present3rdPersonSingular);
		assertEquals('eating', verb.presentParticiple);
	}
	
	@Test
	public void testBe() {
		VerbEngDef verb = cut.getVerb("be");
		assertEquals('be', verb.infinitive);
		assertEquals('be', verb.present);
		assertEquals('are', verb.present2rdPerson);
		assertEquals('were', verb.past);
		assertEquals('was', verb.past3rdPersonSingular);
		assertEquals('been', verb.perfect);
		assertEquals('is', verb.present3rdPersonSingular);
		assertEquals('being', verb.presentParticiple);
	}
	
	@Test
	public void testReceive() {
		VerbEngDef verb = cut.getVerb("receive");
		assertEquals('receive', verb.infinitive);
		assertEquals('receive', verb.present);
		assertEquals('received', verb.past);
		assertEquals('received', verb.perfect);
		assertEquals('receives', verb.present3rdPersonSingular);
		assertEquals('receiving', verb.presentParticiple);
	}
	
	@Test
	public void testPresentParticipe() {
		VerbEngDef verb = cut.getVerb("tremble");
		assertEquals('trembling', verb.presentParticiple);
	}

}
